package com.glsc.ngateway.common.base.enums.itflow;

import com.glsc.ngateway.common.base.exception.PlatformException;
import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

/**
 * 流程配置值类型
 *
 * @author xuchang
 */
@Getter
@AllArgsConstructor
public enum FlowConfigValueTypeEnum {
    /**
     * 角色
     */
    ROLE("ROLE", "角色"),
    /**
     * 员工账号
     */
    ACCOUNT("ACCOUNT", "员工账号"),
    /**
     * 部门
     */
    DEPARTMENT("DEPARTMENT", "部门"),
    /**
     * 键值对
     */
    ENTRY("ENTRY", "键值对"),
    ;
    /**
     * 编码
     */
    private final String code;
    /**
     * 描述
     */
    private final String desc;

    public static FlowConfigValueTypeEnum seek(String code) {
        return Arrays.stream(values()).filter(e -> e.getCode().equals(code)).findFirst()
                .orElseThrow(() -> PlatformException.error(String.format("未找到值类型：%s", code)));
    }
}